/**
 * Created by Administrator on 2018/8/28.
 */
var triArray = new Array();
var insideGrid;
var startGrid;
var $$scope;
var codeNow = "";
var tempOriginSelect;
var $backlogPersonList;
$CertusJsonAjax.ajax("queryCCBXLCProcessTrace",{
    "processInstanceId": $CertusJsonAjax.getProInstanceId(),
    "stepInstanceId": $CertusJsonAjax.getStepInstanceId()
},function(res){
    ;
    $$scope.processCCBXTrace = res.data;
})
function openCashView($scope, $route, CertusFormAjax, CertusJsonAjax, $location, $http, $cookies, $routeParams,backlogPersonList) {
    $scope.trEntity = {};
    $backlogPersonList = backlogPersonList
    triArray = new Array();
    $scope.trEntity = {
        trCode: "tr-" + new Date().getTime() + Math.floor(Math.random() * 10000),
        items: triArray
    };

    $scope.triPercentDis = true;

    /////////////初始化 草稿 记录
    CertusJsonAjax.ajax("listDraftCCBX",{expenseType:'cashType'},function(res){
        if(res.data){
            $scope.dafts = res.data;
        }
    })
    //打开 草稿记录
    $scope.openDraf = function(a){
        CertusFormAjax.ajax("openDraf",{trCode:a},function(res){
            ;
            if(res.data){
                $$scope.trEntity = res.data;
                if($$scope.trEntity.travelCode && $$scope.trEntity.travelCode != ""){
                    $scope.travelCodeChange($$scope.trEntity.travelCode);
                }
                triArray = res.data.items;
                if(triArray){
                    for(var b in triArray){
                        if(triArray[b]){
                            triArray[b].originSurplus = triArray[b].money;
                            for(var g in triArray[b].projectPercent){
                                ;
                                triArray[b].originSurplus -= triArray[b].projectPercent[g].money;
                            }
                        }
                    }
                }
                startGrid.exhibitDatas = res.data.items;
                startGrid.refresh(false);
                $("#yourModal").modal('hide');
            }
        })
    }

    //使用 草稿 方法 public


    $$scope = $scope;

    var picker3 = $('#dateTime1').datetimepicker({
        format: 'YYYY-MM-DD',
        locale: moment.locale('zh-cn')
    }).on('dp.change', function (e) {
        var result = new moment(e.date).format('YYYY-MM-DD');
        if (result && !angular.isUndefined(result)) {
            $scope.trItem.startDate = result;
            $scope.$apply();
        }
    })

    var picker4 = $('#dateTime2').datetimepicker({
        format: 'YYYY-MM-DD',
        locale: moment.locale('zh-cn')
    }).on('dp.change', function (e) {
        var result = new moment(e.date).format('YYYY-MM-DD');
        if (result && !angular.isUndefined(result)) {
            $scope.trItem.endDate = result;
            $scope.$apply();
        }
    })

    //报销 条目
    $scope.ccClassSelect = [
        // {name: "借款申请", code: "loanApplication"},
        {name: "市内交通金额", code: "indoorTraffic"},
        {name: "办公费用", code: "officeExpenses"},
        {name: "招待应酬", code: "entertainDinner"},
        {name: "低值易耗品金额", code: "consumable"},
        {name: "餐费金额", code: "lunchAmount"},
        {name: "通讯费金额", code: "communicationFee"},
        {name: "车辆费", code: "carFee"},
        {name: "其他费用金额", code: "elseFee"}
        // {name: "交通费用", code: "traffic"},
        // {name: "住宿费用", code: "hotel"},
        // {name: "招待费", code: "repetition"},
        // {name: "其他费用", code: "others"},
        // {name: "出差补助", code: "travelAllowance"}
    ]

    $scope.ccCompanySelect = [
        {name: "赛特斯集团", code: "STSJT"},
        {name: "赛特斯南京", code: "STSNJ"},
        {name: "赛特斯广州", code: "STSGD"},
        {name: "赛特斯北京", code: "STSBJ"},
    ]

    //选取 可以 直接 使用 的出差单号
    CertusFormAjax.ajax("availablePolicyNumber", {}, function (res) {
        if (res.data) {
            $scope.availablePolicyNumberSelect = res.data;
        }
    })
    // $scope.travelCodeChange = function (a) {
    //     if (a) {
    //         for(var j in triArray){
    //             triArray[j].projectPercent = null;
    //         }
    //         //初始化可以选取的 项目编号
    //
    //         $scope.triPercentDis = false;
    //         return;
    //     }
    //     $scope.triPercentDis = true;
    //
    // }

    //初始化员工所属 项目
    CertusFormAjax.ajax("relatedProjNumbeer", null, function (res) {
        if (res.data) {
            $scope.availableProjNumberSelect = res.data;
            $scope.triPercentDis = false;
            tempOriginSelect = res.data;
        }
    })

    $scope.addItem = function () {

        $scope.trItem = {};

        $(".afrinfo").show();
    }

    $scope.saveDraftCCBX = function(){
        $scope.trEntity.expenseType = 'cashType';
        CertusJsonAjax.ajax("cashType",$scope.trEntity,function(res){
            if(res.data){
                if(res.data == "success"){
                    window.history.back();
                }
            }
        })
    }

    $scope.startCCBXLc = function(){
        $scope.trEntity.expenseType = 'cashType';
        CertusJsonAjax.ajax("startCCBXLc",$scope.trEntity,function(res){
            if(res.data){
                if(res.data.succed == "success"){
                    nextApprovalManView(res.data.tip);
                    window.history.back();
                    return;
                }
                layer.msg(res.data.succed);
            }
        })
    }

    function isDifferentPercent(element) {
        return element.projId != projIdNow;
    }



    $scope.percentSubmit = function (a) {
        projIdNow = a;
        for (var ii in $$scope.availableProjNumberSelect) {
            if ($$scope.availableProjNumberSelect[ii].code == a) {
                $$scope.triPercent.projName = $$scope.availableProjNumberSelect[ii].name
            }
        }
        if (nowprojectPercent) {
            for (var i in nowprojectPercent) {
                if (nowprojectPercent[i].projId == a) {
                    nowprojectPercent[i] = $$scope.triPercent;
                }
            }

            nowprojectPercent = nowprojectPercent.filter(isDifferentPercent);
            nowprojectPercent.push($$scope.triPercent);
            for (var h in triArray) {
                if (triArray[h].triCode == codeNow) {
                    triArray[h].projectPercent = nowprojectPercent;
                    triArray[h].originSurplus -= $$scope.triPercent.money
                }
            }
        }
        $(".haddpro").hide();
    }

    $scope.disDraft = function(){
        $("#yourModal").modal('show');
    }

    $scope.itemSubmit = function () {

        if (certusValidateNotnullPolyfill()) {
            var changeTr = {};

            //补足 name
            for (var j in $scope.ccCompanySelect) {
                if ($scope.ccCompanySelect[j].code == $scope.trItem.trCompanyCode) {
                    $scope.trItem.trCompanyName = $scope.ccCompanySelect[j].name;
                }
            }

            for (var k in $scope.ccClassSelect) {
                if ($scope.ccClassSelect[k].code == $scope.trItem.triClassCode) {
                    $scope.trItem.triClassName = $scope.ccClassSelect[k].name;
                }
            }
            if ($scope.trItem.projectPercent) {
                $scope.trItem.originSurplus = $scope.trItem.money;
                for (var i in $scope.trItem.projectPercent) {
                    $scope.trItem.originSurplus -= $scope.trItem.projectPercent[i].money;
                }
            }
            ;
            if ($scope.trItem.originSurplus < 0) {
                layer.msg("目前项目分配钱，已经超过现有的总和");
                return;
            }
            $scope.trItem.trCode = $scope.trEntity.trCode;
            $scope.trItem.triCode = "tri-" + new Date().getTime() + Math.floor(Math.random() * 10000);
            codeNow = $scope.trItem.triCode;
            triArray = triArray.filter(isDifferent);
            triArray.push($scope.trItem);
            //算出总金额
            $scope.trEntity.totalAmount = 0;
            for(var b in triArray){
                $scope.trEntity.totalAmount += triArray[b].money;
            }
            startGrid.exhibitDatas = triArray;
            $$scope.trEntity.items = triArray;
            startGrid.refresh(false);

            $(".afrinfo").hide();
        }
    }


    $scope.closeAddItem = function () {
        $(".afrinfo").hide();
    }

    startGrid = $.fn.dlshouwen.grid.init(afrOption);
    startGrid.exhibitDatas = triArray;

    $$scope.triPercentChange = function (a) {
        if (a) {
            for (var i in triArray) {
                if (triArray[i].triCode == codeNow) {
                    var number = parseInt(triArray[i].originSurplus) - parseInt(a);
                    $$scope.triPercent
                }
            }
            $$scope.triPercent.surplus = number;
            return
        }
        $$scope.triPercent.surplus = $$scope.originSurplus
    }

    $scope.editPercent = function(projId) {
        ;
        for (var i in triArray) {
            if (triArray[i].triCode == codeNow) {
                for( var j in triArray[i].projectPercent){
                    if(triArray[i].projectPercent[j].projId == projId){
                        $scope.triPercent = triArray[i].projectPercent[j];
                        $scope.triPercent.surplus = triArray[i].originSurplus;
                        triArray[i].originSurplus += triArray[i].projectPercent[j].money;
                    }
                }
            }
        }
        $("#myModal").modal('hide');
        $(".haddpro").show();
    }

    $$scope.delPercent =
        function (projId) {
            // layer.confirm('确认删除此数据？', {
            //     btn: ['确认', '取消'] //按钮
            // }, function () {
                for (var j in triArray) {
                    if (triArray[j].triCode == codeNow) {
                        for (var i in triArray[j].projectPercent) {
                            if (triArray[j].projectPercent[i].projId == projId) {
                                projIdNow == projId;
                                triArray[j].originSurplus += triArray[j].projectPercent[i].money;
                                triArray[j].projectPercent = triArray[j].projectPercent.filter(isDiffPercent);
                                $$scope.nowprojectPercents = triArray[j].projectPercent;
                                return;
                            }
                        }
                    }
                }
            //     layer.msg('删除成功');
            // });
            
        }

}


// 报销费用明细
var afrColumns = [{
    id: 'trCompanyName',
    title: '报销主体公司',
    width: 150,
    type: 'string',
    columnClass: 'text-center',
}, {
    id: 'triClassName',
    title: '报销类目',
    width: 150,
    type: 'string',
    columnClass: 'text-center',
}, {
    id: 'money',
    title: '金额',
    type: 'string',
    width: 100,
    columnClass: 'text-center',
    resolution: function (value, record, column, grid, dataNo, columnNo) {
        var content = '￥' + value + '元';
        return content;
      }
}, {
    id: 'startDate',
    title: '开始日期',
    type: 'string',
    width: 100,
    columnClass: 'text-center',
    resolution:function (value, record, column, grid, dataNo, columnNo){
        var date = new Date(record.startDate);
        var content = $.fn.dlshouwen.grid.tools.dateFormat(date, "yyyy-MM-dd hh:mm");
        return content;
    }
}, {
    id: 'endDate',
    title: '结束日期',
    type: 'string',
    width: 150,
    columnClass: 'text-center',
    resolution:function (value, record, column, grid, dataNo, columnNo){
        var date = new Date(record.endDate);
        var content = $.fn.dlshouwen.grid.tools.dateFormat(date, "yyyy-MM-dd hh:mm");
        return content;
    }
}, {
    id: 'startAddr',
    title: '开始地点',
    type: 'string',
    width: 150,
    columnClass: 'text-center',
}, {
    id: 'endAddr',
    title: '结束地点',
    type: 'string',
    width: 150,
    columnClass: 'text-center',
}, {
    id: 'triNum',
    title: '原始单据数量',
    type: 'string',
    width: 100,
    columnClass: 'text-center',
}, {
    id: 'trInstruction',
    title: '费用报销明细说明',
    type: 'string',
    columnClass: 'text-left',
}, {
    id: 'operation',
    title: '操作',
    width: 280,
    type: 'string',
    columnClass: 'text-center',
    resolution: function (value, record, column, grid, dataNo, columnNo) {
        var content = '';
        content += '<button class="btn btn-xs btn-success" onclick="addPro(\'' + record.triCode + '\');"><i class="icon-plus"></i>  项目占比</button>';
        content += '  ';
        content += '<button class="btn btn-xs btn-primary" onclick="disMyModal(\'' + record.triCode + '\');"><i class="icon-eye-open"></i>  项目占比</button>';
        content += '  ';
        content += '<button class="btn btn-xs btn-info" onclick="editCC(\'' + record.triCode + '\');"><i class="fa fa-edit"></i>  编辑</button>';
        content += '  ';
        content += '<button class="btn btn-xs btn-danger" onclick="delTriItem(\'' + record.triCode + '\');"><i class="fa fa-trash-o"></i>  删除</button>';
        return content;
    }
}];

function delTriItem(triCode) {
    layer.confirm('确认删除此数据？', {
        btn: ['确认', '取消'] //按钮
    }, function () {
        for (var i in triArray) {
            if (triArray[i].triCode == triCode) {
                triArray = triArray.filter(isDifferent);
                startGrid.exhibitDatas = triArray;
                startGrid.refresh(false);
                $$scope.trEntity.items = triArray;
            }
        }
        layer.msg('删除成功');
    });
    
}



function disMyModal(triCode) {
    ;
    for (var i in triArray) {
        if (triArray[i].triCode == triCode) {
            if (triArray[i].projectPercent) {
                codeNow = triCode;
                nowprojectPercent = triArray[i].projectPercent;
                $$scope.trItem = triArray[i];
                $$scope.nowprojectPercents = nowprojectPercent;
                // $(".haddpro").show();
            }
        }
    }
    $$scope.$apply();
    $("#myModal").modal('show');
}

function isDifferentSelect(element){
    return element.code != projIdNow;
}
var nowprojectPercent;
function addPro(triCode) {
    for (var i in triArray) {
        if (triArray[i].triCode == triCode) {
            codeNow = triCode;
            $$scope.triPercent = {};
            triArray[i].originSurplus = triArray[i].money;
            if (!triArray[i].projectPercent) {
                triArray[i].projectPercent = new Array();
                $$scope.availableProjNumberSelect = tempOriginSelect;
            }else{
                var tempSelect = tempOriginSelect;
                for(var j in triArray[i].projectPercent){
                    ;
                    triArray[i].originSurplus -= triArray[i].projectPercent[j].money
                    projIdNow = triArray[i].projectPercent[j].projId;
                    if(tempOriginSelect){
                        tempSelect  = tempSelect.filter(isDifferentSelect);
                    }
                }
                $$scope.availableProjNumberSelect = tempSelect;
            }
            $$scope.triPercent.surplus = triArray[i].originSurplus;
            nowprojectPercent = triArray[i].projectPercent
            $$scope.$apply();
            $(".haddpro").show();
            return;
        }
    }
}

function haddpro() {
    $(".haddpro").hide();
}

function editCC(triCode) {
    for (var i in triArray) {
        if (triArray[i].triCode == triCode) {
            $$scope.trItem = triArray[i];
        }
    }
    $(".afrinfo").show();
    $$scope.$apply();
}

function isDifferent(element) {
    return element.triCode != codeNow;
}

var afrOption = {
    lang: 'zh-cn',
    ajaxLoad: false,
    extraWidth: 20,
    // loadURL:'url',
    exportFileName: '报销费用明细',
    datas: [],
    columns: afrColumns,
    gridContainer: 'afrContainer',
    toolbarContainer: 'afrToolBarContainer',
    tools: '',
    pageSize: 10,
    pageSizeLimit: [10, 15, 20]
};

var projIdNow;
function isDiffPercent(element) {
    return element.projId != projIdNow;
}




